A technique for sharing a three-dimensional (3D) virtual space among different computer terminals is indispensable to implement remote meeting systems, network games, cooperative design systems, and the like.
In such system that shares a 3D virtual space each terminal uses virtual space data so as to draw moving images on the virtual space by computer graphics. In order to manage such virtual space data, the following methods are known. In one method, a server has virtual space data, and respective terminals generate CG images by referring to the virtual space data on the server via a network. In another method, respective terminals have copies of the virtual space data and generate CG images by referring to them. When the respective terminals have copies of virtual space data, and when an arbitrary manipulation (e.g., movement or rotation of a virtual object) has been made for the virtual space on a given terminal, information associated with that manipulation is transmitted to other terminals via the network, thus reflecting that information on the databases of the respective terminals. As a result, consistency among the databases of the respective computer terminals is maintained.
As an implementation example of such virtual space sharing system, Distributed Open Inventor (source: G. Heshina et. al.: “Distributed Open Inventor: A Practical Approach to Distributed 3D Graphics”, in Proc. of the ACM Symposium on Virtual Reality Software and Technology (VRST'99), pp. 74-81, 1999) is known.
However, with either method, when identical virtual space data is manipulated from respective terminals at the same time or at temporally very close timings, an unintended result may be generated or consistency of virtual space data may no longer be maintained.
As a method of coping with such problem, a concept called an exclusive control right is known. With this concept, a terminal, which wants to manipulate a given manipulation object, acquires the right (exclusive control right) to exclusively manipulate that manipulation object, and then starts manipulation. A manipulation object, which is set with the exclusive control right, is never manipulated by a terminal other than the terminal that has acquired the exclusive control right. That is, since it is guaranteed that one and only terminal can manipulate that manipulation object at a given time, the aforementioned problem can be solved.
In general, objects laid out on a 3D space have a hierarchical cross-relationship. When a manipulation for, e.g., moving a given object is made, that manipulation has an influence on all objects that belong to the manipulated object. For example, when an object is placed on another object, if the lower object has been moved, the upper object normally changes its position accordingly. In order to appropriately express such hierarchical cross-relationship between objects, it is a common practice to describe virtual space data using a tree structure such as an N-ary tree or the like, or a data structure such as a nonrecursive directed graph or the like.
However, in the conventional system, the exclusive control right is set for individual objects irrespective of the hierarchical relationship on the virtual space. For this reason, in order to manipulate a given object, the user must recognize beforehand the hierarchical relationship on the virtual space to which objects belong, and must then individually acquire the exclusive control rights for other objects which relate to that object, resulting in very troublesome operations. Hence, an improvement is demanded.